// #include <iostream>

// using namespace std;

// int main()
// {
//     cout << "hello world" << endl;
//     return 0;
// }

// #include <stdio.h>


// int main()
// {
//     printf("hello world!!!!!!\n");
//     return 0;
// }


// #include <iostream>

// using namespace std;

// int main()
// {
//     cout << "hello world\n" << endl;
//     return 0;
// }

// #include <iostream>
// using namespace std;
// namespace dew
// {
//     int rand = 10;

//     void func()
//     {
//         cout << "hello dew" << endl;
//     }

//     struct Node
//     {
//         int a;
//         struct Node* next;
//     };

//     namespace dew1
//     {
//         int rand = 30;
//     }
// }

// namespace bit
// {
//     int rand = 20;

//     void func()
//     {
//         cout << "hello bit" << endl;
//     }
// }

// int main()
// {
//     cout << dew::rand << endl;
//     dew::func();
//     cout << dew::dew1::rand << endl;
//     struct dew::Node n;

//     cout << bit::rand << endl;
//     bit::func();

//     return 0;
// }


// #include <iostream>

// using std::cout;
// using std::endl;

// void func(int a = 10)
// {
//     cout << a << endl;
// }

// int main()
// {
//     //cout << "hello world !!!!" << endl;
//     func();
//     func(1);
//     func(20);
//     return 0;
// }



// #include <iostream>

// using namespace std;

// void func(int a = 1, int b = 2, int c = 3)
// {
//     cout << a << " ";
//     cout << b << " ";
//     cout << c << endl;
// }

// //缺省参数不能声明和定义同时给，只能在声明时给
// void test(int a, int b, int c = 3)
// {
//     cout << a << " ";
//     cout << b << " ";
//     cout << c << endl;
// }

// int main()
// {
//     func();
//     func(10);
//     func(10,20);
//     func(10,20,30);
//     return 0;
// }


// #include <iostream>

// using namespace std;

// int Add(int a, int b)
// {
//     return a + b;
// }

// double Add(double a, double b)
// {
//     return a + b;
// }

// void func()
// {
//     cout << "void func()" << endl;
// }

// void func(int a)
// {
//     cout << "void func(int a)" << endl;
// }

// int main()
// {
//     cout << Add(1,3) << endl;
//     cout << Add(1.1,2.2) << endl;
//     func();
//     func(10);
//     return 0;
// }


// #include <iostream>

// using namespace std;

// int main()
// {
//     int a = 10;
//     int b = a;
//     int& c = a;
//     cout << a << " " << c << endl;
//     c++;
//     cout << a << " " << c << endl;

//     return 0;
// }


// void Swap(int* a , int* b)
// {
//     int t = *a;
//     *a = *b;
//     *b = t;
// }

// void Swap(int& a , int& b)
// {
//     int t = a;
//     a = b;
//     b = t;
// }

// int main()
// {
//     int a = 5;
//     int b = 3;

//     cout << a << " " << b << endl;

//     Swap(&a,&b);
//     cout << a << " " << b << endl;
//     Swap(a,b);
//     cout << a << " " << b << endl;
//     return 0;
// }

// #include <iostream>

// using namespace std;

// int main()
// {
//     int a = 10;
//     int& ra = a;
//     int b = 4;
//     cout << a << endl;
//     ra = 20;
//     cout << a << endl;
//     ra = b;
//     cout << a << endl;
//     return 0;
// }

// #include <iostream>
// using namespace std;
// int& test()
// {
//     static int a = 10;
//     return a;
// }

// int main()
// {
//     int& ra = test();
//     cout << ra << endl;
//     return 0;
// }


// #include <iostream>

// using namespace std;

// int main()
// {
//     const int a = 10;
//     const int& b = a;

//     return 0;
// }


// #include <iostream>
// using namespace std;
// int main()
// {
//     int arr[] = {1,2,3,4,5,6,7,8,9};
//     for(auto e:arr)
//     {
//         cout << e  << " ";
//     }

//     return 0;
// }

// #include <iostream>

// using namespace std;

// inline int Add(int a, int b)
// {
//     return a+b;
// }

// int main()
// {
//     cout << Add(1,3) << endl;
//     return 0;
// }


// #include <iostream>
// using namespace std;

// int main()
// {   
//     int a = 0;
//     int b = a;
//     auto c = a;
//     auto d = 11.1;
//     auto e = 'w';

//     cout << typeid(a).name() << endl;
//     cout << typeid(b).name() << endl;
//     cout << typeid(c).name() << endl;
//     cout << typeid(d).name() << endl;
//     cout << typeid(e).name() << endl;

//     return 0;
// }



#include <iostream>

using namespace std;

void f(int)
{
    cout << "void f(int)" << endl;
}

void f(int*)
{
    cout << "void f(int*)" << endl;
}

int main()
{
    f(0);
    f(nullptr);

    return 0;
}






